﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Sistema_financiero
{
    public partial class frm_Anulacion_pago : Form
    {
        public List<Entidades.Pago> Lista_pagos = new List<Sistema_financiero.Entidades.Pago>();
        public Entidades.Pago Pago_seleccionado = new Sistema_financiero.Entidades.Pago();
        public frm_Anulacion_pago()
        {
            InitializeComponent();
        }

        private void Anulacion_pago_Load(object sender, EventArgs e)
        {
            Enable_disable_anular_pago(dgv_Pagos.RowCount);
        }

        private void btn_Buscar_Click(object sender, EventArgs e)
        {
            frm_Buscar_Prestamo Buscar_prestamo = new frm_Buscar_Prestamo();
            Buscar_prestamo.ShowDialog();

            if (Buscar_prestamo.Prestamo_seleccionado != null)
            {
                tbx_Num_prestamo_seleccionado.Text = Convert.ToString(Buscar_prestamo.Prestamo_seleccionado.ID_cliente);
                tbx_Nombre.Text = Convert.ToString(Buscar_prestamo.Prestamo_seleccionado.Nombre_cliente);
                tbx_Apellido.Text = Convert.ToString(Buscar_prestamo.Prestamo_seleccionado.Apellido_cliente);
                tbx_Nro_cliente.Text = Convert.ToString(Buscar_prestamo.Prestamo_seleccionado.ID_cliente);
                Lista_pagos = Entidades.Pago.Obtener_pagos(Buscar_prestamo.Prestamo_seleccionado.ID, DateTime.Now);

                dgv_Pagos.DataSource = null;
                dgv_Pagos.DataSource = Lista_pagos;
                Enable_disable_anular_pago(dgv_Pagos.RowCount);
            }
        }

        private void btn_Anular_pago_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("¿Desea anular este pago?", "Confirmación", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                Pago_seleccionado.Id_prestamo = Convert.ToInt32(dgv_Pagos[0, dgv_Pagos.CurrentRow.Index].Value);
                Pago_seleccionado.nro_pago = Convert.ToInt32(dgv_Pagos[4, dgv_Pagos.CurrentRow.Index].Value);

                Entidades.Pago.Anular_pago(Pago_seleccionado.Id_prestamo,Pago_seleccionado.nro_pago);
                
                Lista_pagos = Entidades.Pago.Obtener_pagos(Pago_seleccionado.Id_prestamo, DateTime.Now);
                dgv_Pagos.DataSource = null;
                dgv_Pagos.DataSource = Lista_pagos;
                Enable_disable_anular_pago(dgv_Pagos.RowCount);
            }
            else
            { 
            
            }
        }

        public void Enable_disable_anular_pago(int cantidad_filas)
        {
            if (cantidad_filas > 0)
            {
                btn_Anular_pago.Enabled = true;
                dgv_Pagos.CurrentCell = dgv_Pagos.Rows[0].Cells[1];
            }
            else
            {
                btn_Anular_pago.Enabled = false;
            }
        }
    }
}
